home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8410.arc / MOUSE.PAS < prev    next >
Pascal/Delphi Source File  |  1986-09-14  |  1KB  |  52 lines

  1. {      MOUSKETCH       }
  2. {   by Jeff Duntemann  }
  3.  
  4. PROGRAM MOUSKETCH;
  5.  
  6. TYPE REGPACK = RECORD
  7.                  AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS : INTEGER
  8.                END;
  9.  
  10. VAR OLDX,OLDY,X,Y : INTEGER;
  11.     M1,M2,M3,M4   : INTEGER;
  12.     REGSET        : REGPACK;
  13.  
  14. PROCEDURE MOUSE(VAR M1,M2,M3,M4 : INTEGER);
  15.  
  16. VAR REGSET : REGPACK;
  17.  
  18. BEGIN
  19.   WITH REGSET DO
  20.     BEGIN            { Set up AX/BX/CX/DX for interrupt }
  21.       AX := M1;
  22.       BX := M2;
  23.       CX := M3;
  24.       DX := M4
  25.     END;
  26.   INTR(51,REGSET);   { Trip interrupt 51 }
  27.   WITH REGSET DO
  28.     BEGIN            { Put return values back into M1-M4 }
  29.       M1 := AX;
  30.       M2 := BX;
  31.       M3 := CX;
  32.       M4 := DX
  33.     END
  34. END;
  35.  
  36. BEGIN
  37.   HIRES;                          { Choose graphics mode & color }
  38.   HIRESCOLOR(YELLOW);
  39.   M1:=0;                          { Init mouse driver }
  40.   MOUSE(M1,M2,M3,M4);
  41.   M1:=1;                          { Turn mouse cursor on }
  42.   MOUSE(M1,M2,M3,M4);
  43.   M1 := 3; OLDX := 0; OLDY := 0;
  44.   WHILE NOT KEYPRESSED DO         { Exit MOUSKETCH when any key pressed }
  45.     BEGIN
  46.       MOUSE(M1,M2,M3,M4);
  47.       IF M2 <> 0 THEN DRAW(OLDX,OLDY,M3,M4,1);  { Draw if button pressed }
  48.       OLDX := M3;                 { Update old X/Y values }
  49.       OLDY := M4;
  50.     END;
  51. END.
  52.